//#include <iostream>
//using namespace std;
//struct Node{
//    int value;
//    struct Node *next;
//};
//typedef struct Node Node;//类型定义，把struct node定义为node定义一个节点
//typedef struct Node *linkList;//类型定义，定义一个结点的指针
//
//void initLinkList(linkList *L){
//    //初始化不需要一个游标似的指针，传入头结点，然后生成多个结构，按照头尾相接的方式串联
//    linkList twoNode = (linkList)malloc(sizeof(Node));
//    linkList threeNode = (linkList)malloc(sizeof(Node));
//    (*L)->next = twoNode;
//    (*L)->value = 1;
//
//    twoNode->next = threeNode;
//    twoNode->value = 2;
//
//    threeNode->next = NULL;
//    threeNode->value = 3;
//}
//
//void printLinkList(linkList L){
//    //输入整个链表，链表是一条线,而p是指针，相互独立的结构，指针在线上游走。
//    linkList p;
//    p = L;
//    cout<<p->value<<endl;
//    while (p->next != NULL){
//        p = p->next;
//        cout<<p->value<<endl;
//    }
//}
//
//
//void insertLinkList(linkList *L,int value,int index){
//    int j =1;
//    linkList p;
//    p = (*L);
//    while (p && j<index){
//        p = p->next;
//        j++;
//    }
//    if (!p||j>index){
//        cout<<"错误"<<endl;
//    }
//    //插入就是生成一个新节点，然后用指针在线上游走，游走到指定的index则断开index的next和新节点关系
//    linkList newNode = (linkList)malloc(sizeof(Node));
//    newNode->value = value;
//    newNode->next = p->next;
//    p->next = newNode;
//}
//
//
//int main() {
//    //创建一个头结点
//    linkList headNode = (linkList)malloc(sizeof(Node));
//    //初始化链表
//    initLinkList(&headNode);
//    //插入一个值到链表
//    insertLinkList(&headNode,9,1);
//    //打印整个链表
//    printLinkList(headNode);
//}